package com.micro.glszh.stat.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.micro.glszh.stat.base.BaseEntity;
import com.micro.glszh.stat.base.ValidationGroups;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * biz_disease_detail
 *
 * @Author gaopengfei
 * @create 2024/10/21 15:53
 */

/**
 * 病假追踪详情
 */
@TableName("biz_disease_detail")
@Data
@ApiModel(description="病假追踪详情")
public class BizDiseaseDetail extends BaseEntity implements Serializable {
    /**
    * 主键id
    */
    @TableId
    @ApiModelProperty(value="主键id")
    @NotNull(groups = ValidationGroups.Update.class, message = "主键id不能为null")
    private Long id;


    public void setId(Long id) {
        if (id > 1736320698000L) {
            this.id = null;
        } else {
            this.id = id;
        }
    }

    /**
    * 学生姓名
    */
    @ApiModelProperty(value="学生姓名")
    @Size(max = 20,message = "学生姓名最大长度要小于 20")
    @NotBlank(message = "学生姓名不能为空")
    private String name;

    /**
    * 性别 0 男 1 女
    */
    @ApiModelProperty(value="性别 0 男 1 女")
    @NotNull(message = "性别 0 男 1 女不能为null")
    private Integer gender;

    /**
    * 班级序号
    */
    @ApiModelProperty(value="班级序号")
    @NotNull(message = "班级序号不能为null")
    private Integer classId;

    /**
    * 年级
    */
    @ApiModelProperty(value="年级")
    @NotNull(message = "年级不能为null")
    private Integer grade;

    /**
    * 症状
    */
    @ApiModelProperty(value="症状")
    @Size(max = 50,message = "症状最大长度要小于 50")
    @NotBlank(message = "症状不能为空")
    private String reason;

    /**
    * 是否就诊 0 未就诊，1 就诊
    */
    @ApiModelProperty(value="是否就诊 0 未就诊，1 就诊")
    private Integer diagnosed;

    /**
    * 诊断结果
    */
    @ApiModelProperty(value="诊断结果")
    private String diagnoseResult;

    /**
    * 就诊医院
    */
    @ApiModelProperty(value="就诊医院")
    private String hospital;

    /**
    * 传染病 0 不是 1 是
    */
    @ApiModelProperty(value="传染病 0 不是 1 是")
    private Integer epidemic;

    /**
    * 处理方式 0 门诊 1 住院 2 居家治疗
    */
    @ApiModelProperty(value="处理方式 0 居家治疗 1 门诊 2 住院")
    private Integer handleWay;

    /**
    * 请假时间
    */
    @ApiModelProperty(value="请假时间")
    @NotNull(message = "请假时间不能为null")
    private LocalDateTime leaveDate;

    /**
    * 请假时长
    */
    @ApiModelProperty(value="请假时长")
    @Size(max = 20,message = "请假时长最大长度要小于 20")
    @NotBlank(message = "请假时长不能为空")
    private String leaveDuration;

    /**
    * 返校时间
    */
    @ApiModelProperty(value="返校时间")
    @NotNull(message = "返校时间不能为null")
    private LocalDateTime backDate;

    @ApiModelProperty(value="记录主键id")
    @TableField(value = "record_id")
    @NotNull(groups = {ValidationGroups.Update.class, ValidationGroups.Insert.class }, message = "主键id不能为null")
    private Long recordId;

    /**
     * 事假病假，区分
     */
    @ApiModelProperty(value="1 病假")
    private Integer type;

    private static final long serialVersionUID = 1L;

}